<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>

    // console.log(a);     // undefined
    // var a = 10;
    // console.log(a);     // 10




    // console.log(fn);
    // function fn(){
    //     console.log(1);
    // }
    // console.log(fn);

    // console.log(fun);
    // var fun = function(){
    //     console.log(2);
    // }
    // console.log(fun);



    // console.log(fn);

    // function fn(){ console.log(1) }
    // var fn = "hello";

    // console.log(fn);


    // var提前声明，function整体提升
    // var声明的变量和function声明的函数重名
    //     var的提升更高，所以function生效


    // ;(function(){
    //     console.log(a);         // f4
    //     function a(){ 1 }
    //     console.log(a);         // f4
    //     var a = "hello"
    //     console.log(a);         // hello
    //     function a(){ 2 }
    //     console.log(a);         // hello
    //     var a = function(){ 3 }
    //     console.log(a);         // f3
    //     function a(){ 4 }
    //     console.log(a);         // f3
    //     a = "world";
    //     console.log(a);         // world
    // })();
    // 手动解析
    // ;(function(){
    //     var a;
    //     function a(){ 1 }
    //     function a(){ 2 }
    //     function a(){ 4 }
    //     console.log(a);         // f4
    //     console.log(a);         // f4
    //     a = "hello"
    //     console.log(a);         // hello
    //     console.log(a);         // hello
    //     a = function(){ 3 }
    //     console.log(a);         // f3
    //     console.log(a);         // f3
    //     a = "world";
    //     console.log(a);         // world
    // })();
    
</script>
</html>